package com.example.test;

import java.util.concurrent.TimeUnit;

class Phone {

    public synchronized void sendEmail() {
        try {
            //暂停线程
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("-------sendEmail");
    }

    public static synchronized void sendSMS() {
        System.out.println("-------sendSMS");
    }

    public void hello() {
        System.out.println("--------hello");
    }

}

/**
 * @author xiejp on 2022/4/8
 *
 * 1.标准访问,请问先打印邮件还是短信?  邮件 短信
 * 2.邮件方法暂停4秒钟,请问先打印邮件还是短信?  邮件 短信
 * 3.新增一个普通方法,请问先打印hello,还是其他? hello 邮件 短信
 * 4.两部手机 ,请问先打印邮件还是短信? 短信 邮件
 * 5.两个静态同步方法,同一步手机,请问先打印邮件还是短信  邮件 短信
 * 6.两个静态同步方法,两部手机,请问先打印邮件还是短信,  邮件 短信
 * 7.一个普通同步方法,一个静态同步方法 一部手机 请问先打印邮件还是短信  短信 邮件
 * 8.一个普通同步方法,一个静态同步方法 两部手机 请问先打印邮件还是短信  短信  邮件
 */
public class Lock8 {
    public static void main(String[] args) {
        Phone phone = new Phone();
        Phone phone1 = new Phone();
        //new Thread(phone::sendEmail, "A").start();

        new Thread(()->{phone.sendSMS();},"B").start();
        new Thread(() -> {
            phone.sendEmail();
        }, "A").start();
        //new Thread(phone::sendSMS, "B").start();
        //new Thread(() -> {
        //    phone1.sendSMS();
        //}, "B").start();
         new Thread(phone::hello, "c").start();
    }
}
